package chap2_7;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * @author https://gitee.com/W_Jun
 * @version 1.0
 * @date 2021-11-26 22:29
 * @Description 字节流读数据（一次读一个字节数组）
 */
public class FileInputStreamDemo02 {
    public static void main(String[] args) throws IOException {
        //创建字节输入流对象
        FileInputStream fis = new FileInputStream("chapter02-字节流\\fos.txt");

        //调用字节输入流对象的读数据的方法
        //int read(byte[] b)：从该输入流读取最多 b.length 个字节的数据到一个字节数组
/*        byte[] bys = new byte[5];

        //第一次读取数据
        int len = fis.read(bys);
        System.out.println(len);
        //String (byte[] bytes)
        System.out.println(new String(bys));
        System.out.println("==========");
        //第二次读取数据
        len = fis.read(bys);
        System.out.println(len);
        //String (byte[] bytes)
        System.out.println(new String(bys));
        System.out.println("==========");
        System.out.println(new String(bys, 0, len));
        System.out.println("==========");
        */
        /*
          hello
          hello
          第一次：hello
          第二次：\r\nhel
         */

        //当read(bys)的返回值为-1时，读到末尾了
        byte[] bys = new byte[1024];//通常是1024及其整数倍
        int len;
        while ((len = fis.read(bys)) != -1) {
            System.out.print(new String(bys, 0, len));
        }

        //释放资源
        fis.close();
    }
}
